Verifying Higher-Order Imperative Programs with Higher-Order Separation Logic
نویسنده
چکیده
In this thesis I show is that it is possible to give modular correctness proofs of interesting higher-order imperative programs using higher-order separation logic. To do this, I develop a model higher-order imperative programming language, and develop a program logic for it. I demonstrate the power of my program logic by verifying a series of examples, culminating in the correctness proof of a library for event-driven programming, which despite an imperative (and higher-order) implementation, nevertheless permits clients to reason about it using simple and powerful equational reasoning principles.
منابع مشابه
Characteristic Formulae for the Veri cation of Imperative Programs
We have developed characteristic formulae as a technique for verifying imperative programs using interactive theorem provers. The characteristic formula of a program is a higher-order logic formula that gives a sound and complete description of the semantics of this program without referring to its source code. The formula can be constructed automatically from the source code it describes, in a...
متن کاملFormalized Proof of Type Safety of Hoare Type Theory
We prove type safety of the Hoare Type Theory (HTT), an extension of Separation Logic and Hoare Logic to higher-order functional programs. Our proof is rather simple and is based on subject reduction, unlike previous work on HTT by Birkedal et al., which uses nontrivial denotational semantics. Further, we formalized our proof in the Coq theorem prover. This formalization can be seen as a basis ...
متن کاملA Fistful of Dollars: Formalizing Asymptotic Complexity Claims via Deductive Program Verification
We present a framework for simultaneously verifying the functional correctness and the worst-case asymptotic time complexity of higher-order imperative programs. We build on top of Separation Logic with Time Credits, embedded in an interactive proof assistant. We formalize the O notation, which is key to enabling modular specifications and proofs. We cover the subtleties of the multivariate cas...
متن کاملSeparation Logic for a Higher-Order Typed Language
Separation logic is an extension of Hoare logic which permits reasoning about low-level imperative programs that use shared mutable heap structure. In this work, we create an extension of separation logic that permits effective, modular reasoning about typed, higher-order functional programs that use aliased mutable heap data, including pointers to code.
متن کاملVerifying Object-Oriented Programs with Higher-Order Separation Logic in Coq
We present a shallow Coq embedding of a higher-order separation logic with nested triples for an object-oriented programming language. Moreover, we develop novel specification and proof patterns for reasoning in higher-order separation logic with nested triples about programs that use interfaces and interface inheritance. In particular, we show how to use the higher-order features of the Coq fo...
متن کامل